package com.beiding.jsonanalyzer.analyze;

public class QueryUtils {

//    public interface CheckOne<T> {
//        int check(T t);
//    }
//
//    public static class ValueNodeCheckOne implements CheckOne<ValueNode> {
//
//        BaseQuery comparator;
//
//        public ValueNodeCheckOne(BaseQuery comparator) {
//            this.comparator = comparator;
//        }
//
//        @Override
//        public int check(ValueNode valueNode) {
//            return comparator.compare(valueNode.getValue(), null);
//        }
//
//    }

    /**
     * 查找用公共代码
     *
     * @param visitAble
     * @param checkOne
     * @param deep
     * @param offset
     * @param len
     * @param <T>
     * @return
     */
//    public static <T> VisitAble<T> query(VisitAble<T> visitAble, CheckOne<T> checkOne, int deep, int offset, int len) {
//
//
//        //忽略deep层数
//        List<T> valueNodes = new ArrayList<>();
//
//        if (offset < 0) {
//            offset = 0;
//        }
//        if (len <= 0) {
//            len = Integer.MAX_VALUE;
//        }
//
//        int[] pass = new int[]{0};
//
//        int finalOffset = offset;
//        int finalLen = len;
//        visitAble.onNode(deep, holder -> {
//            int compare = checkOne.check(holder);
//            if (compare == 1) {
//                if (pass[0] == finalOffset) {
//                    valueNodes.addElement(holder);
//                    if (valueNodes.size() >= finalLen) {
//                        //结束遍历
//                        return 2;
//                    }
//                } else {
//                    //跳过数加1
//                    pass[0]++;
//                }
//            }
//            return 0;
//
//        });
//
//        return new ListVisitor<>(valueNodes);
//
//    }

}
